<?php

Class PropertyFinalReviewsController extends AppController {

    public $name = 'PropertyFinalReviews';

    function index($property_id) {
        if ($this->RequestHandler->isAjax()) {
            $this->layout = "ajax";
        } else {
            $this->layout = "default";
        }




        $this->set('property_id', $property_id);
        $this->paginate = array('PropertyFinalReview' => array('maxLimit' => 500, 'limit' => 50, 'fields' => array('Property.codigo', 'PropertyFinalReview.concepto', 'PropertyFinalReview.nombre_archivo', 'PropertyFinalReview.calificacion', 'PropertyFinalReview.id'),'order'=>array('PropertyFinalReview.id DESC')));
        $this->set('PropertyFinalReviews', $this->paginate(array('PropertyFinalReview.property_id' => $property_id)));
        $proyecto = $this->PropertyFinalReview->Property->find('first', array( 
            'recursive'=>-1,
            'conditions' => array('Property.id' => $property_id), 
            'fields' => array('Proyect.codigo'),
            'joins'=>array(array( 'table'=>'proyects','alias'=>'Proyect','type'=>'left','conditions'=>'Proyect.id=Property.proyect_id')),
            
            ));
        $codigo = $proyecto['Proyect']['codigo'];
        $this->set('codigo', $codigo);
    }

    function edit($id) {
        $this->layout = "ajax";
        if (empty($this->data)) {

            $this->data = $this->PropertyFinalReview->find('first', array('conditions' => array('PropertyFinalReview.id' => $id), 'fields' => array('PropertyFinalReview.concepto', 'PropertyFinalReview.calificacion', 'PropertyFinalReview.id', 'PropertyFinalReview.property_id')));
            $predio = $this->PropertyFinalReview->Property->find('first', array('conditions' => array('Property.id' => $this->data['PropertyFinalReview']['property_id']), 'fields' => array('Property.matricula', 'Property.id', 'Property.oficina_instrumentos')));
            $this->data['Property']['matricula'] = $predio['Property']['matricula'];
            $this->data['Property']['oficina_instrumentos'] = $predio['Property']['oficina_instrumentos'];
            $this->data['Property']['id'] = $predio['Property']['id'];
        } else {
            $predio = $this->PropertyFinalReview->Property->find('first', array('conditions' => array('Property.id' => $this->data['PropertyFinalReview']['property_id']), 'fields' => array('Property.id')));


            if ($this->data['PropertyFinalReview']['calificacion'] == "Cumple") {

                if (stristr($this->data['PropertyFinalReview']['archivo']['name'], ".pdf")) {
                    if ($this->PropertyFinalReview->saveAll($this->data)) {

                        $proyecto = $this->PropertyFinalReview->Property->find('first', array('conditions' => array('Property.id' => $predio['Property']['id']), 'fields' => array('Proyect.codigo')));
                        $codigo = $proyecto['Proyect']['codigo'];
                        $rutaArchivo = APP . "webroot" . "/" . "files" . "/" . $codigo;
                        if (!is_dir($rutaArchivo)) {
                            if (!mkdir($rutaArchivo)) {
                                echo "error creando archivo";
                                //redirect
                            }
                        }
                        $nombreArchivo = "PRF-$codigo-$id.pdf";
                        $rutaArchivo.= "/" . $nombreArchivo;


                        if (move_uploaded_file($this->data['PropertyFinalReview']['archivo']['tmp_name'], $rutaArchivo)) {
                            $this->Session->setFlash('Registro Adicionado correctamente');
                            $this->redirect(array('controller' => 'Pages', 'action' => 'display'));
                        }
                    } else {
                        $this->Session->setFlash('Error Guardando datos');
                    }
                } else {
                    $this->Session->setFlash('ERROR GUARDANDO LOS DATOS. Si la calificación es cumple, es obligatorio adjuntar archivo tipo pdf', 'flash_custom');
                    $this->redirect(array('controller' => 'Pages', 'action' => 'display'));
                }
            } else {
                if ($this->PropertyFinalReview->saveAll($this->data)) {

                    if (stristr($this->data['PropertyFinalReview']['archivo']['name'], ".pdf")) {
                        if ($this->PropertyFinalReview->saveAll($this->data)) {

                            $proyecto = $this->PropertyFinalReview->Property->find('first', array('conditions' => array('Property.id' => $predio['Property']['id']), 'fields' => array('Proyect.codigo')));
                            $codigo = $proyecto['Proyect']['codigo'];
                            $rutaArchivo = APP . "webroot" . "/" . "files" . "/" . $codigo;
                            if (!is_dir($rutaArchivo)) {
                                if (!mkdir($rutaArchivo)) {
                                    echo "error creando archivo";
                                    //redirect
                                }
                            }
                            $nombreArchivo = "PRF-$codigo-$id.pdf";
                            $rutaArchivo.= "/" . $nombreArchivo;


                            if (move_uploaded_file($this->data['PropertyFinalReview']['archivo']['tmp_name'], $rutaArchivo)) {
                                $this->Session->setFlash('Registro Adicionado correctamente');
                                $this->redirect(array('controller' => 'Pages', 'action' => 'display'));
                            }
                        } else {
                            $this->Session->setFlash('Error Guardando datos');
                        }
                    }
                    $this->Session->setFlash('Registro Adicionado correctamente');
                    $this->redirect(array('controller' => 'Pages', 'action' => 'display'));
                } else {
                    $this->Session->setFlash('Error Guardando datos');
                }
            }
        }
    }

    function add($property_id) {
        $this->layout = "ajax";
        $this->set('property_id', $property_id);
        if (empty($this->data)) {
            //SI NO LLEGAN DATOS
            $predio = $this->PropertyFinalReview->Property->find('first', array('conditions' => array('Property.id' => $property_id), 'fields' => array('Property.matricula', 'Property.id', 'Property.oficina_instrumentos')));
            $this->data['Property']['matricula'] = $predio['Property']['matricula'];
            $this->data['Property']['oficina_instrumentos'] = $predio['Property']['oficina_instrumentos'];
        } else {
            if ($this->data['PropertyFinalReview']['calificacion'] == "Cumple") {
                //SI LA CALIFICACIÓN ES CUMPLE
                if (stristr($this->data['PropertyFinalReview']['archivo']['name'], ".pdf")) {
                    //SI SE ENVIO DATOS DE ARCHIVO.
                    if ($this->PropertyFinalReview->saveAll($this->data)) {
                        //SI GUARDA
                        $lastId = $this->PropertyFinalReview->getInsertID();

                        $proyecto = $this->PropertyFinalReview->Property->find('first', array('conditions' => array('Property.id' => $property_id), 'fields' => array('Proyect.codigo')));
                        $codigo = $proyecto['Proyect']['codigo'];
                        $rutaArchivo = APP . "webroot" . "/" . "files" . "/" . $codigo;
                        if (!is_dir($rutaArchivo)) {
                            if (!mkdir($rutaArchivo)) {
                                echo "error creando archivo";
                                //redirect
                            }
                        }
                        $nombreArchivo = "PRF-$codigo-$lastId.pdf";
                        $rutaArchivo.= "/" . $nombreArchivo;


                        if (move_uploaded_file($this->data['PropertyFinalReview']['archivo']['tmp_name'], $rutaArchivo)) {
                            $this->Session->setFlash('Registro Adicionado correctamente');
                            $this->redirect(array('controller' => 'PropertyFinalReviews', 'action' => 'index', $property_id));
                        }
                    } else {
                        $this->Session->setFlash('Error Guardando datos');
                    }
                } else {
                    $this->Session->setFlash('ERROR GUARDANDO LOS DATOS. Si la calificación es cumple, es obligatorio adjuntar archivo tipo pdf', 'flash_custom');
                    $this->redirect(array('controller' => 'PropertyFinalReviews', 'action' => 'index', $property_id));
                }
            } else {
                //SI LA CALIFICACIÓN NO ES CUMPLE
                if ($this->PropertyFinalReview->saveAll($this->data)) {
                    if (stristr($this->data['PropertyFinalReview']['archivo']['name'], ".pdf")) {

                        $lastId = $this->PropertyFinalReview->getInsertID();

                        $proyecto = $this->PropertyFinalReview->Property->find('first', array('conditions' => array('Property.id' => $property_id), 'fields' => array('Proyect.codigo')));
                        $codigo = $proyecto['Proyect']['codigo'];
                        $rutaArchivo = APP . "webroot" . "/" . "files" . "/" . $codigo;
                        if (!is_dir($rutaArchivo)) {
                            if (!mkdir($rutaArchivo)) {
                                echo "error creando archivo";
                                //redirect
                            }
                        }
                        $nombreArchivo = "PRF-$codigo-$lastId.pdf";
                        $rutaArchivo.= "/" . $nombreArchivo;


                        if (move_uploaded_file($this->data['PropertyFinalReview']['archivo']['tmp_name'], $rutaArchivo)) {
                            $this->Session->setFlash('Registro Adicionado correctamente');
                            $this->redirect(array('controller' => 'PropertyFinalReviews', 'action' => 'index', $property_id));
                        }
                    }
                    $this->Session->setFlash('Registro Adicionado correctamente');
                    $this->redirect(array('controller' => 'PropertyFinalReviews', 'action' => 'index', $property_id));
                } else {
                    $this->Session->setFlash('Error Guardando datos');
                }
            }
        }
    }

}

?>
